gather(Chars) --> [C],  {alphaNumeric(C)},  gather(Rest),{Chars=[C|Rest]}.gather([]) --> {true}.alphaNumeric(C):- 96<C,C<123;                    64<C, C<91;                    47<C, C<58.tokenize(Result)-->gather(Chars),{\+ Chars =[]},tokenize(RestResult),                  	{name(N,Chars), Result=[N|RestResult]}. tokenize(R)-->[C],{C<33},tokenize(R).tokenize([N|R]) --> [C],{C>32},                        {name(N,[C])},tokenize(R).tokenize([])-->[].